home *** CD-ROM | disk | FTP | other *** search
/ Aminet 41 / Aminet 41 (2001)(Schatztruhe)[!][Feb 2001].iso / Aminet / util / sys / Ver.lha / Version / Version.s < prev    next >
Text File  |  2000-12-20  |  32KB  |  1,760 lines

  1. *****************************************************************************
  2. *                                        *
  3. *    PROGRAM: Version (a replacement for C:Version 40.1)            *
  4. *    VERSION: 40.4                                *
  5. *   SOURCE CODE: 5                                *
  6. *       DATE: 05.12.2000 - 20.12.2000                    *
  7. *      LANGUAGE: C+ (reassembled source Devpac Assembler V3.0)            *
  8. *     SYSTEM: A1200  KS 40.68 WB 40.42 2MB chip 64MB fast 68030/50mhz    *
  9. *                                        *
  10. *     AUTHOR: Joerg Riemer 14167 Berlin/SchottmuellerStr.107/Germany        *
  11. *      EMAIL: mission@cs.tu-berlin.de                    *
  12. *                                        *
  13. *    -------------------------------------------------------------        *
  14. *                                        *
  15. *      40.4 - y2k-patch enhanced to recognize a 4 digit year in        *
  16. *         datestamps. but due the limit in DOS DateTime 40.15        *
  17. *         only the 2 lower digits want be printed.            *
  18. *                                        *
  19. *      40.3 - read-routine now checks for a minimum of bytes    which        *
  20. *         will fit a regular versionstring. this means a length         *
  21. *         of 9 characters "$VER: a x". for further information        *
  22. *         about regular versionstrings read versionstring.doc        *
  23. *           - sourcecode downcoded to be compatible for MC68k user.        *
  24. *                                        *
  25. *      40.2 - date2amiga output fixed (Y2K problem). maybe not the        *
  26. *         best patch but it works.                     *
  27. *                                        *
  28. *    -------------------------------------------------------------        *
  29. *                                        *
  30. *****************************************************************************
  31.  
  32.         Output    RAM:Version
  33.  
  34. *****************************************************************************
  35.  
  36.         SECTION    Version,CODE
  37.  
  38. ProgStart    link    A5,#-$CC
  39.         movem.l    D2-D7/A2/A3/A6,-(SP)
  40.         moveq    #$0,D6
  41.         moveq    #$14,D7
  42.         move.w    #$4,A0
  43.         move.l    (A0),A1
  44.         move.l    A1,-$30(A5)
  45.         move.l    A1,A6
  46.         lea    DOSName(PC),A1
  47.         moveq    #$0,D0
  48.         jsr    -$228(A6)
  49.         move.l    D0,-$38(A5)
  50.         move.l    D0,A0
  51.         cmp.w    #$25,$14(A0)
  52.         bcs    WrongLib
  53.         lea    UTILName(PC),A1
  54.         moveq    #$25,D0
  55.         jsr    -$228(A6)
  56.         move.l    D0,-$34(A5)
  57.         moveq    #$1F,D0
  58.         moveq    #$0,D1
  59.         lea    -$7C(A5),A0
  60. LC0048        move.b    D1,(A0)+
  61.         dbra    D0,LC0048
  62.         lea    Template(PC),A0
  63.         move.l    A0,D1
  64.         lea    -$7C(A5),A1
  65.         move.l    A1,D2
  66.         moveq    #$0,D3
  67.         move.l    -$38(A5),A6
  68.         jsr    -$31E(A6)
  69.         move.l    D0,$24(SP)
  70.         tst.l    D0
  71.         beq    PrintFault
  72.         moveq    #-$1,D5
  73.         tst.l    -$70(A5)
  74.         beq.s    LC0078
  75.         moveq    #$20,D5
  76. LC0078        tst.l    -$7C(A5)
  77.         bne    LC0104
  78.         clr.l    -(SP)
  79.         pea    $1.w
  80.         move.l    #$80110001,-(SP)
  81.         move.l    D3,-(SP)
  82.         pea    -$5C(A5)
  83.         bsr    LC107C
  84.         lea    $14(SP),SP
  85.         move.l    D0,A3
  86.         move.l    A3,D0
  87.         beq.s    LC0104
  88.         move.l    $14(A3),-(SP)
  89.         move.l    $10(A3),-(SP)
  90.         pea    Text(PC)
  91.         pea    -$C8(A5)
  92.         jsr    RawDoFmt(PC)
  93.         lea    -$C8(A5),A0
  94.         move.l    A0,A1
  95. LC00BA        tst.b    (A1)+
  96.         bne.s    LC00BA
  97.         subq.l    #$1,A1
  98.         sub.l    A0,A1
  99.         move.l    D4,-(SP)
  100.         move.l    A0,D2
  101.         move.l    A1,D3
  102.         lea    Text0(PC),A0
  103.         move.l    A0,D1
  104.         move.l    -$38(A5),A6
  105.         moveq    #$40,D4
  106.         lsl.l    #$3,D4
  107.         jsr    -$384(A6)
  108.         move.l    (SP)+,D4
  109.         move.l    $C(A3),D0
  110.         move.l    $14(A3),(SP)
  111.         move.l    $10(A3),-(SP)
  112.         move.l    D0,-(SP)
  113.         pea    Text1(PC)
  114.         pea    -$5C(A5)
  115.         bsr    LC045A
  116.         lea    -$5C(A5),A0
  117.         move.l    A3,A1
  118.         bsr    LC0BCC
  119.         lea    $20(SP),SP
  120. LC0104        move.l    -$7C(A5),A0
  121.         clr.l    -(SP)
  122.         move.l    D5,-(SP)
  123.         move.l    #$80110002,-(SP)
  124.         move.l    A0,-(SP)
  125.         pea    -$5C(A5)
  126.         bsr    LC107C
  127.         lea    $14(SP),SP
  128.         move.l    D0,A2
  129.         move.l    A2,D0
  130.         beq    LC0286
  131.         btst    #$0,$3(A2)
  132.         beq    LC0280
  133.         btst    #$1,$3(A2)
  134.         beq    LC026A
  135.         move.l    $C(A2),A3
  136.         move.l    A3,D0
  137.         bne.s    LC0148
  138.         move.l    $C(A2),A3
  139. LC0148        move.l    $10(A2),D5
  140.         move.l    $14(A2),D4
  141.         move.l    A3,D0
  142.         move.l    D0,-(SP)
  143.         pea    Text2(PC)
  144.         pea    -$5C(A5)
  145.         bsr    LC045A
  146.         lea    $C(SP),SP
  147.         tst.l    -$6C(A5)
  148.         beq.s    LC01D8
  149.         btst    #$5,$3(A2)
  150.         beq.s    LC01C0
  151.         move.b    #$4,-$A8(A5)
  152.         sub.l    A0,A0
  153.         move.l    A0,-$A6(A5)
  154.         lea    -$9A(A5),A1
  155.         move.l    A1,-$A2(A5)
  156.         move.l    A0,-$9E(A5)
  157.         clr.b    -$A7(A5)
  158.         lea    $18(A2),A0
  159.         lea    -$B4(A5),A1
  160.         move.l    (A0)+,(A1)+
  161.         move.l    (A0)+,(A1)+
  162.         move.l    (A0)+,(A1)+
  163.         lea    -$B4(A5),A0
  164.         move.l    A0,D1
  165.         move.l    -$38(A5),A6
  166.         jsr    -$2E8(A6)
  167.         lea    -$9A(A5),A0
  168.         move.l    A0,-(SP)
  169.         pea    DateStr(PC)
  170.         pea    -$5C(A5)
  171.         bsr    LC045A
  172.         lea    $C(SP),SP
  173. LC01C0        move.l    $24(A2),D0
  174.         beq.s    LC01D8
  175.         move.l    D0,-(SP)
  176.         pea    Text3(PC)
  177.         pea    -$5C(A5)
  178.         bsr    LC045A
  179.         lea    $C(SP),SP
  180. LC01D8        lea    Text4(PC),A0
  181.         move.l    A0,D1
  182.         move.l    -$38(A5),A6
  183.         jsr    -$3B4(A6)
  184.         lea    -$5C(A5),A0
  185.         move.l    A2,A1
  186.         bsr    LC0BCC
  187.         tst.l    -$7C(A5)
  188.         bne.s    LC0232
  189.         move.l    D4,-(SP)
  190.         move.l    D5,-(SP)
  191.         pea    Text(PC)
  192.         pea    -$C8(A5)
  193.         jsr    RawDoFmt(PC)
  194.         lea    $10(SP),SP
  195.         lea    -$C8(A5),A0
  196.         move.l    A0,A1
  197. LC0210        tst.b    (A1)+
  198.         bne.s    LC0210
  199.         subq.l    #$1,A1
  200.         sub.l    A0,A1
  201.         move.l    D4,-(SP)
  202.         move.l    A0,D2
  203.         move.l    A1,D3
  204.         lea    Text5(PC),A0
  205.         move.l    A0,D1
  206.         move.l    -$38(A5),A6
  207.         moveq    #$40,D4
  208.         lsl.l    #$3,D4
  209.         jsr    -$384(A6)
  210.         move.l    (SP)+,D4
  211. LC0232        moveq    #$0,D7
  212.         move.l    -$78(A5),D0
  213.         beq.s    LC025A
  214.         move.l    D0,A3
  215.         move.l    (A3),D0
  216.         cmp.l    D0,D5
  217.         bge.s    LC0246
  218.         moveq    #$5,D7
  219.         bra.s    LC0288
  220.  
  221. LC0246        cmp.l    D0,D5
  222.         bne.s    LC0288
  223.         move.l    -$74(A5),D0
  224.         beq.s    LC0288
  225.         move.l    D0,A0
  226.         cmp.l    (A0),D4
  227.         bge.s    LC0288
  228.         moveq    #$5,D7
  229.         bra.s    LC0288
  230.  
  231. LC025A        move.l    -$74(A5),D0
  232.         beq.s    LC0288
  233.         move.l    D0,A0
  234.         cmp.l    (A0),D4
  235.         bge.s    LC0288
  236.         moveq    #$5,D7
  237.         bra.s    LC0288
  238.  
  239. LC026A        move.l    -$7C(A5),-(SP)
  240.         pea    Text6(PC)
  241.         pea    -$5C(A5)
  242.         bsr    LC045A
  243.         lea    $C(SP),SP
  244.         bra.s    LC0288
  245.  
  246. LC0280        moveq    #$32,D6
  247.         not.b    D6
  248.         bra.s    LC0288
  249.  
  250. LC0286        moveq    #$67,D6
  251. LC0288        move.l    $24(SP),D1
  252.         move.l    -$38(A5),A6
  253.         jsr    -$35A(A6)
  254.         bra.s    LC029C
  255.  
  256. PrintFault    jsr    -$84(A6)
  257.         move.l    D0,D6
  258. LC029C        tst.l    D6
  259.         beq.s    CloseUTIL
  260.         move.l    D6,D1
  261.         moveq    #$0,D2
  262.         jsr    -$1DA(A6)
  263. CloseUTIL    move.l    -$34(A5),A1
  264.         move.l    -$30(A5),A6
  265.         jsr    -$19E(A6)
  266.         bra.s    CloseDOS
  267.  
  268. WrongLib    move.l    D0,A6
  269.         lea    Console(PC),A1
  270.         move.l    A1,D1
  271.         move.l    #$3EE,D2
  272.         jsr    -$1E(A6)
  273.         move.l    D0,D6
  274.         tst.l    D6
  275.         beq.s    Error0
  276.         moveq    #$36,D0
  277.         move.l    D0,D3
  278.         move.l    D6,D1
  279.         lea    Text7(PC),A0
  280.         move.l    A0,D2
  281.         jsr    -$30(A6)
  282.         move.l    D6,D1
  283.         jsr    -$24(A6)
  284. Error0        move.w    #$4,A0
  285.         move.l    (A0),A1
  286.         move.l    $114(A1),A0
  287.         moveq    #$7A,D0
  288.         move.l    D0,$94(A0)
  289. CloseDOS    move.l    -$38(A5),A1
  290.         move.l    -$30(A5),A6
  291.         jsr    -$19E(A6)
  292.         move.l    D7,D0
  293.         movem.l    (SP)+,D2-D7/A2/A3/A6
  294.         unlk    A5
  295.         rts
  296.  
  297. *****************************************************************************
  298.  
  299. DOSName        dc.b    'dos.library',0
  300. UTILName    dc.b    'utility.library',0
  301.  
  302.         even
  303.  
  304. *****************************************************************************
  305.  
  306. Template
  307.  
  308.  dc.b 'NAME,VERSION/N,REVISION/N,FILE/S,FULL/S,UNIT/N,INTERNAL/S,RES/S',0
  309.  
  310.  even
  311.  
  312. *****************************************************************************
  313.  
  314.         dc.b    '$VER: version 40.4 (20.12.2000) '
  315.         dc.b    'replacement for c:version 40.1 (09.02.93)',0
  316.  
  317.         even
  318.  
  319. *****************************************************************************
  320.  
  321. Text        dc.b    '%ld.%ld',0
  322. Text0        dc.b    'Kickstart',0
  323. Text1        dc.b    '%s %ld.%ld, ',0,0
  324. Text2        dc.b    '%s',0,0
  325. DateStr        dc.b    ' (%s)',0
  326. Text3        dc.b    $A,'%s',0
  327. Text4        dc.b    $A,0
  328. Text5        dc.b    'Workbench',0
  329. Text6        dc.b    'Could not find version information for ''%s''',$A,0,0
  330.  
  331. *****************************************************************************
  332.  
  333. Console    dc.b    '*',0
  334. Text7    dc.b 'This disk requires Kickstart version 2.04 or greater.',$A,0,0
  335.  
  336. *****************************************************************************
  337.  
  338. Text8        dc.b    '$VER:',0
  339. lW042A        dc.w    0
  340. Text9        dc.b    '%s %ld.%ld',0,0
  341. VERName        dc.b    'version.library',0
  342. Text10        dc.b    'shell',0
  343. Text11        dc.b    'LIBS:',0
  344. Text12        dc.b    'DEVS:',0
  345.  
  346. *****************************************************************************
  347.  
  348.         cnop    0,4
  349.  
  350. *****************************************************************************
  351.  
  352. LC045A        link    A5,#$0
  353.         movem.l    D2/A2/A3/A6,-(SP)
  354.         move.l    $8(A5),A3
  355.         move.l    $C(A5),A2
  356.         move.l    A2,D1
  357.         lea    $10(A5),A0
  358.         move.l    A0,D2
  359.         move.l    $24(A3),A6
  360.         jsr    -$3BA(A6)
  361.         movem.l    (SP)+,D2/A2/A3/A6
  362.         unlk    A5
  363.         rts
  364.  
  365. *****************************************************************************
  366.  
  367. LC0482        link    A5,#-$8
  368.         movem.l    D2/D3/A2/A3/A6,-(SP)
  369.         move.l    A0,A3
  370.         move.l    A1,-$8(A5)
  371.         move.l    -$8(A5),D1
  372.         moveq    #$0,D2
  373.         moveq    #$0,D3
  374.         move.l    $24(A3),A6
  375.         jsr    -$30C(A6)
  376.         move.l    D0,A2
  377.         move.l    A2,D0
  378.         bne.s    LC04B2
  379.         move.l    -$8(A5),D1
  380.         moveq    #$1,D3
  381.         jsr    -$30C(A6)
  382.         move.l    D0,A2
  383. LC04B2        move.l    A2,D0
  384.         movem.l    (SP)+,D2/D3/A2/A3/A6
  385.         unlk    A5
  386.         rts
  387.  
  388. *****************************************************************************
  389.  
  390. LC04BC        movem.l    D6/D7/A3,-(SP)
  391.         move.l    D0,D7
  392.         bra.s    LC04F6
  393.  
  394. LC04C4        move.l    D7,D0
  395.         asl.l    #$2,D0
  396.         move.l    D0,A3
  397.         move.l    D0,A0
  398.         move.l    (A0),D7
  399.         move.l    -$4(A0),D1
  400.         lsr.l    #$1,D1
  401.         move.l    D1,D6
  402.         bra.s    LC04F0
  403.  
  404. LC04D8        move.w    (A3)+,D0
  405.         cmp.w    #$4AFC,D0
  406.         bne.s    LC04EE
  407.         subq.l    #$2,A3
  408.         move.l    $2(A3),A0
  409.         cmp.l    A3,A0
  410.         bne.s    LC04EE
  411.         move.l    A3,D0
  412.         bra.s    LC04FC
  413.  
  414. LC04EE        subq.l    #$1,D6
  415. LC04F0        moveq    #$0,D0
  416.         cmp.l    D0,D6
  417.         bhi.s    LC04D8
  418. LC04F6        tst.l    D7
  419.         bne.s    LC04C4
  420.         moveq    #$0,D0
  421. LC04FC        movem.l    (SP)+,D6/D7/A3
  422.         rts
  423.  
  424. *****************************************************************************
  425.  
  426. LC0502        movem.l    D5-D7/A2/A3,-(SP)
  427.         move.l    D0,D7
  428.         bra.s    LC0540
  429.  
  430. LC050A        move.l    D7,D0
  431.         asl.l    #$2,D0
  432.         move.l    D0,A3
  433.         move.l    (A3),D7
  434.         moveq    #$0,D6
  435.         move.l    -$4(A3),D5
  436.         subq.l    #$4,D5
  437.         bra.s    LC053C
  438.  
  439. LC051C        move.l    A3,A2
  440.         add.l    D6,A2
  441.         moveq    #$24,D0
  442.         cmp.b    (A2),D0
  443.         bne.s    LC053A
  444.         moveq    #$5,D0
  445.         move.l    A2,A0
  446.         lea    Text8(PC),A1
  447.         jsr    LC1138(PC)
  448.         tst.l    D0
  449.         bne.s    LC053A
  450.         move.l    A2,D0
  451.         bra.s    LC0546
  452.  
  453. LC053A        addq.l    #$1,D6
  454. LC053C        cmp.l    D5,D6
  455.         bcs.s    LC051C
  456. LC0540        tst.l    D7
  457.         bne.s    LC050A
  458.         moveq    #$0,D0
  459. LC0546        movem.l    (SP)+,D5-D7/A2/A3
  460.         rts
  461.  
  462. *****************************************************************************
  463.  
  464. LC054C        link    A5,#-$7C
  465.         movem.l    D2/D4-D7/A2/A3/A6,-(SP)
  466.         move.l    $8(A5),A3
  467.         movem.l    D0/D1/A0/A1,-$74(A5)
  468.         move.l    -$68(A5),A2
  469.         bset    #$0,$3(A2)
  470.         move.l    A3,D0
  471.         beq.s    LC0572
  472.         bset    #$1,$3(A2)
  473. LC0572        tst.w    -$72(A5)
  474.         beq.s    LC057C
  475.         moveq    #$A,D0
  476.         or.l    D0,(A2)
  477. LC057C        tst.w    -$6E(A5)
  478.         beq.s    LC0586
  479.         moveq    #$12,D0
  480.         or.l    D0,(A2)
  481. LC0586        move.l    A3,D0
  482.         bne.s    LC058E
  483.         lea    lW042A(PC),A3
  484. LC058E        moveq    #$0,D5
  485.         moveq    #$5,D0
  486.         move.l    A3,A0
  487.         lea    Text8(PC),A1
  488.         jsr    LC1138(PC)
  489.         tst.l    D0
  490.         bne.s    LC05A6
  491.         moveq    #$5,D5
  492.         bra.s    LC05A6
  493.  
  494. LC05A4        addq.l    #$1,D5
  495. LC05A6        moveq    #$20,D0
  496.         cmp.b    $0(A3,D5.L),D0
  497.         beq.s    LC05A4
  498.         move.l    D5,D0
  499.         move.l    D0,$24(SP)
  500.         bra.s    LC05B8
  501.  
  502. LC05B6        addq.l    #$1,D5
  503. LC05B8        move.l    A3,A2
  504.         add.l    D5,A2
  505.         move.b    (A2),D0
  506.         moveq    #$20,D1
  507.         cmp.b    D1,D0
  508.         beq.s    LC05DE
  509.         tst.b    D0
  510.         beq.s    LC05D4
  511.         moveq    #$A,D1
  512.         cmp.b    D1,D0
  513.         beq.s    LC05D4
  514.         moveq    #$D,D1
  515.         cmp.b    D1,D0
  516.         bne.s    LC05D8
  517. LC05D4        moveq    #$1,D0
  518.         bra.s    LC05DA
  519.  
  520. LC05D8        moveq    #$0,D0
  521. LC05DA        tst.l    D0
  522.         beq.s    LC05B6
  523. LC05DE        move.l    D5,D6
  524.         bra.s    LC05E4
  525.  
  526. LC05E2        addq.l    #$1,D5
  527. LC05E4        move.l    A3,A2
  528.         add.l    D5,A2
  529.         moveq    #$20,D0
  530.         cmp.b    (A2),D0
  531.         beq.s    LC05E2
  532.         move.b    (A2),D0
  533.         move.b    D0,$20(SP)
  534.         move.b    $20(SP),D0
  535.         beq.s    LC0612
  536.         moveq    #$A,D1
  537.         cmp.b    D1,D0
  538.         beq.s    LC0612
  539.         moveq    #$D,D1
  540.         cmp.b    D1,D0
  541.         beq.s    LC0612
  542.         moveq    #$30,D1
  543.         cmp.b    D1,D0
  544.         blt.s    LC05B8
  545.         moveq    #$39,D1
  546.         cmp.b    D1,D0
  547.         bgt.s    LC05B8
  548. LC0612        move.l    A2,D1
  549.         lea    -$1C(A5),A0
  550.         move.l    A0,D2
  551.         move.l    -$6C(A5),A6
  552.         move.l    $24(A6),A6
  553.         jsr    -$330(A6)
  554.         move.l    D0,D7
  555.         move.l    -$68(A5),A2
  556.         tst.l    D7
  557.         ble.s    LC064A
  558.         tst.w    -$72(A5)
  559.         bne.s    LC0642
  560.         move.l    -$1C(A5),$10(A2)
  561.         bset    #$3,$3(A2)
  562. LC0642        add.l    D7,D5
  563.         move.l    D5,D6
  564.         bra.s    LC064A
  565.  
  566. LC0648        addq.l    #$1,D5
  567. LC064A        moveq    #$20,D0
  568.         cmp.b    $0(A3,D5.L),D0
  569.         beq.s    LC0648
  570.         move.l    D5,D4
  571.         moveq    #$2E,D0
  572.         cmp.b    $0(A3,D4.L),D0
  573.         bne    LC085A
  574.         addq.l    #$1,D5
  575.         move.l    A3,A0
  576.         add.l    D5,A0
  577.         move.l    A0,D1
  578.         lea    -$1C(A5),A1
  579.         move.l    A1,D2
  580.         move.l    -$6C(A5),A6
  581.         move.l    $24(A6),A6
  582.         jsr    -$330(A6)
  583.         move.l    D0,D7
  584.         tst.l    D7
  585.         ble    LC085A
  586.         tst.w    -$6E(A5)
  587.         bne.s    LC0692
  588.         move.l    -$1C(A5),$14(A2)
  589.         bset    #$4,$3(A2)
  590. LC0692        add.l    D7,D5
  591.         bra.s    LC0698
  592.  
  593. LC0696        addq.l    #$1,D5
  594. LC0698        move.l    A3,A2
  595.         add.l    D5,A2
  596.         move.b    (A2),D0
  597.         beq.s    LC06AC
  598.         moveq    #$A,D1
  599.         cmp.b    D1,D0
  600.         beq.s    LC06AC
  601.         moveq    #$D,D1
  602.         cmp.b    D1,D0
  603.         bne.s    LC06B0
  604. LC06AC        moveq    #$1,D1
  605.         bra.s    LC06B2
  606.  
  607. LC06B0        moveq    #$0,D1
  608. LC06B2        tst.l    D1
  609.         bne.s    LC06BC
  610.         moveq    #$28,D1
  611.         cmp.b    D1,D0
  612.         bne.s    LC0696
  613. LC06BC                        ;^ move.l -$18(A5),D6
  614.         move.l    D5,D6
  615.         move.l    D6,D4
  616.         moveq    #$28,D0
  617.         cmp.b    (A2),D0
  618.         bne    LC085A
  619.         move.l    D6,D0
  620.         subq.l    #$1,D0
  621.         moveq    #$1,D6
  622.         move.l    D0,-$18(A5)
  623.         bra.s    LC06E0
  624.  
  625. LC06D8        move.b    $0(A3,D7.L),D0
  626.         move.b    D0,(A2)
  627.         addq.l    #$1,D6
  628. LC06E0        lea    -$4B(A5),A0
  629.         add.l    D6,A0
  630.         move.l    A0,A2
  631.         moveq    #$14,D0
  632.         cmp.l    D0,D6
  633.         bcc.s    LC06FA
  634.         move.l    D5,D7
  635.         add.l    D6,D7
  636.         moveq    #$29,D0
  637.         cmp.b    $0(A3,D7.L),D0
  638.         bne.s    LC06D8
  639. LC06FA        clr.b    (A2)
  640.         addq.l    #$1,D5
  641.         move.l    A3,A0
  642.         add.l    D5,A0
  643.         move.l    A0,D1
  644.         lea    -$20(A5),A1
  645.         move.l    A1,D2
  646.         move.l    -$6C(A5),A6
  647.         move.l    $24(A6),A6
  648.         jsr    -$330(A6)
  649.         move.l    D0,D7
  650.         move.l    -$68(A5),A2
  651.         tst.l    D7
  652.         ble    LC080A
  653.         add.l    D7,D5
  654.         moveq    #$2E,D0
  655.         cmp.b    $0(A3,D5.L),D0
  656.         bne    LC080A
  657.         addq.l    #$1,D5
  658.         move.l    A3,A0
  659.         add.l    D5,A0
  660.         move.l    A0,D1
  661.         lea    -$24(A5),A1
  662.         move.l    A1,D2
  663.         jsr    -$330(A6)
  664.         move.l    D0,D7
  665.         tst.l    D7
  666.         ble    LC080A
  667.         add.l    D7,D5
  668.         moveq    #$2E,D0
  669.         cmp.b    $0(A3,D5.L),D0
  670.         bne    LC080A
  671.         addq.l    #$1,D5
  672.         move.l    A3,A0
  673.         add.l    D5,A0
  674.         move.l    A0,D1
  675.         lea    -$28(A5),A1
  676.         move.l    A1,D2
  677.         jsr    -$330(A6)
  678.         move.l    D0,D7
  679.         tst.l    D7
  680.         ble    LC080A
  681.         add.l    D7,D5
  682.         moveq    #$29,D0
  683.         cmp.b    $0(A3,D5.L),D0
  684.         bne.s    LC077E
  685.         addq.l    #$1,D5
  686.         bra.s    LC077E
  687.  
  688. LC077C        addq.l    #$1,D5
  689. LC077E        moveq    #$20,D0
  690.         cmp.b    $0(A3,D5.L),D0
  691.         beq.s    LC077C
  692.         move.l    D5,D4
  693. *****************************************************************************
  694. *        move.l    #1900,D0
  695. *        add.l    -$28(A5),D0
  696. ;^ 1'patch y2k (5.12.2000) **************************************************
  697. *        cmp.w    #77,-$28(A5)        ;^
  698. *        bhi.b    .skip            ;^
  699. *        add.w    #100,D0            ;^
  700. ;^ **************************************************************************
  701. *.skip        move.w    D0,-$2C(A5)
  702. *****************************************************************************
  703.  
  704. ;^ 2'patch y2k (20.12.2000) recognize 4 digit year in datestamps ************
  705.  
  706.         move.l    -$28(A5),D0        ;^
  707.  
  708.         move.w    #2000,D1        ;^
  709.         cmp.w    #78,D0            ;^
  710.         bcs.b    .add_D1            ;^
  711.  
  712.         move.w    #1900,D1        ;^
  713.         cmp.w    #100,D0            ;^
  714.         bcs.b    .add_D1            ;^
  715.  
  716.         move.w    #0000,D1        ;^
  717.         cmp.w    #1978,D0        ;^
  718.         bcs.b    LC080A            ;^
  719.  
  720. .add_D1        add.w    D1,D0            ,^
  721.  
  722.         move.w    D0,-$2C(A5)
  723.         move.l    -$24(A5),D0
  724.         move.w    D0,-$2E(A5)
  725.         move.l    -$20(A5),D0
  726.         move.w    D0,-$30(A5)
  727.         moveq    #$0,D0
  728.         move.w    D0,-$32(A5)
  729.         move.w    D0,-$34(A5)
  730.         move.w    D0,-$36(A5)
  731.         lea    -$36(A5),A0
  732.         move.l    -$6C(A5),A6
  733.         move.l    $28(A6),A6
  734.         jsr    -$7E(A6)
  735.         move.l    D0,D7             ;seconds since 1.1.1978
  736.                         ;^ tst.l D7
  737.         beq.b    .skip1            ;^ beq.b LC080A
  738.                         ;^ move.l D7,D0
  739.         move.l    #$15180,D1        ;seconds per day
  740.         jsr    LC11B4(PC)
  741. .skip1        move.l    D0,$18(A2)        ;^
  742.         beq.b    .skip2            ;^ move.l D7,D0
  743.                         ;^ move.l #$15180,D1
  744.                         ;^ jsr    LC11B4(PC)
  745.         move.l    D1,D0
  746.         moveq    #$3C,D1
  747.         jsr    LC11B4(PC)
  748. .skip2        move.l    D0,$1C(A2)        ;^
  749.         move.l    D7,D0
  750.         beq.b    .skip3            ;^
  751.         moveq    #$3C,D1
  752.         jsr    LC11B4(PC)
  753.         moveq    #$32,D0
  754.         jsr    LC1194(PC)
  755. .skip3        move.l    D0,$20(A2)        ;^
  756.  
  757. ;^***************************************************************************
  758.  
  759.         bset    #$5,$3(A2)
  760. LC080A        move.l    -$18(A5),D6
  761.         btst    #$5,$3(A2)
  762.         bne.s    LC085A
  763.         moveq    #$19,D0
  764.         moveq    #$0,D1
  765.         lea    -$64(A5),A0
  766. LC081E        move.b    D1,(A0)+
  767.         dbra    D0,LC081E
  768.         clr.b    -$58(A5)
  769.         lea    -$4A(A5),A0
  770.         move.l    A0,-$52(A5)
  771.         lea    -$64(A5),A0
  772.         move.l    A0,D1
  773.         move.l    -$6C(A5),A6
  774.         move.l    $24(A6),A6
  775.         jsr    -$2EE(A6)
  776.         tst.l    D0
  777.         beq.s    LC085A
  778.         lea    $18(A2),A0
  779.         lea    -$64(A5),A1
  780.         move.l    (A1)+,(A0)+
  781.         move.l    (A1)+,(A0)+
  782.         move.l    (A1)+,(A0)+
  783.         bset    #$5,$3(A2)
  784. LC085A        move.l    -$68(A5),A2
  785.         move.l    $C(A2),A0
  786.         move.l    A0,D0
  787.         beq.s    LC0898
  788.         lea    $28(A2),A1
  789.         move.l    $14(A2),-(SP)
  790.         move.l    $10(A2),-(SP)
  791.         move.l    A0,-(SP)
  792.         pea    Text9(PC)
  793.         move.l    A1,-(SP)
  794.         move.l    A1,$38(SP)
  795.         jsr    RawDoFmt(PC)
  796.         lea    $14(SP),SP
  797.         move.l    $24(SP),A2
  798.         move.l    A2,A0
  799. LC088C        tst.b    (A0)+
  800.         bne.s    LC088C
  801.         subq.l    #$1,A0
  802.         sub.l    A2,A0
  803.         move.l    A0,D7
  804.         bra.s    LC08A4
  805.  
  806. LC0898        move.l    A3,A2
  807.         move.l    $24(SP),D0
  808.         add.l    D0,A2
  809.         move.l    D6,D7
  810.         sub.l    D0,D7
  811. LC08A4        move.l    D7,D0
  812.         addq.l    #$1,D0
  813.         moveq    #$1,D1
  814.         swap    D1
  815.         move.l    -$6C(A5),A6
  816.         move.l    $2C(A6),A6
  817.         jsr    -$2AC(A6)
  818.         move.l    -$68(A5),A0
  819.         move.l    D0,$C(A0)
  820.         tst.l    D0
  821.         bne.s    LC08D4
  822.         move.l    A0,A1
  823.         move.l    -$6C(A5),A0
  824.         bsr    LC0BCC
  825.         moveq    #$0,D0
  826.         bra    LC0972
  827.  
  828. LC08D4        move.l    -$68(A5),A0
  829.         bset    #$2,$3(A0)
  830.         move.l    A2,A0
  831.         move.l    -$68(A5),A1
  832.         move.l    $C(A1),A1
  833.         move.l    D7,D0
  834.         move.l    -$6C(A5),A6
  835.         move.l    $2C(A6),A6
  836.         jsr    -$270(A6)
  837.         bra.s    LC08FA
  838.  
  839. LC08F8        addq.l    #$1,D5
  840. LC08FA        move.l    A3,A2
  841.         add.l    D5,A2
  842.         move.b    (A2),D0
  843.         beq.s    LC090E
  844.         moveq    #$A,D1
  845.         cmp.b    D1,D0
  846.         beq.s    LC090E
  847.         moveq    #$D,D1
  848.         cmp.b    D1,D0
  849.         bne.s    LC0912
  850. LC090E        moveq    #$1,D0
  851.         bra.s    LC0914
  852.  
  853. LC0912        moveq    #$0,D0
  854. LC0914        tst.l    D0
  855.         beq.s    LC08F8
  856.         move.l    -$68(A5),A2
  857.         tst.l    D4
  858.         bmi.s    LC0970
  859.         move.l    D5,D7
  860.         sub.l    D4,D7
  861.         beq.s    LC0970
  862.         move.l    D7,D0
  863.         addq.l    #$1,D0
  864.         moveq    #$1,D1
  865.         swap    D1
  866.         move.l    -$6C(A5),A6
  867.         move.l    $2C(A6),A6
  868.         jsr    -$2AC(A6)
  869.         move.l    D0,$24(A2)
  870.         tst.l    D0
  871.         bne.s    LC0950
  872.         move.l    -$6C(A5),A0
  873.         move.l    A2,A1
  874.         bsr    LC0BCC
  875.         moveq    #$0,D0
  876.         bra.s    LC0972
  877.  
  878. LC0950        move.l    -$68(A5),A2
  879.         move.l    A3,A0
  880.         add.l    D4,A0
  881.         bset    #$6,$3(A2)
  882.         move.l    $24(A2),A1
  883.         move.l    D7,D0
  884.         move.l    -$6C(A5),A6
  885.         move.l    $2C(A6),A6
  886.         jsr    -$270(A6)
  887. LC0970        move.l    A2,D0
  888. LC0972        movem.l    (SP)+,D2/D4-D7/A2/A3/A6
  889.         unlk    A5
  890.         rts
  891.  
  892. *****************************************************************************
  893.  
  894. LC097A        link    A5,#$0
  895.         movem.l    A2/A3,-(SP)
  896.         move.l    A0,A3
  897.         move.l    A1,A2
  898.         move.l    $8(A5),A0
  899.         move.l    $E(A0),$C(A2)
  900.         moveq    #$0,D0
  901.         move.b    $B(A0),D0
  902.         move.l    D0,$10(A2)
  903.         move.l    $12(A0),-(SP)
  904.         moveq    #$1,D0
  905.         moveq    #$0,D1
  906.         move.l    A3,A0
  907.         move.l    A2,A1
  908.         bsr    LC054C
  909.         movem.l    -$8(A5),A2/A3
  910.         unlk    A5
  911.         rts
  912.  
  913. *****************************************************************************
  914.  
  915. LC09B4        link    A5,#-$24
  916.         movem.l    D2/D3/D5-D7/A2/A3/A6,-(SP)
  917.         move.l    A0,A3
  918.         move.l    A1,-$1C(A5)
  919.         clr.b    -$16(A5)
  920.         move.l    -$1C(A5),A2
  921.         tst.l    $8(A2)
  922.         bne.s    LC09E8
  923.         moveq    #$40,D0
  924.         lsl.l    #$2,D0
  925.         moveq    #$0,D1
  926.         move.l    $2C(A3),A6
  927.         jsr    -$2AC(A6)
  928.         move.l    D0,$8(A2)
  929.         tst.l    D0
  930.         beq    LC0BB6
  931. LC09E8        move.l    #$1006,D0
  932.         moveq    #$0,D1
  933.         move.l    $2C(A3),A6
  934.         jsr    -$2AC(A6)
  935.         move.l    D0,$24(SP)
  936.         tst.l    D0
  937.         beq    LC0BB6
  938.         move.l    $8(A5),D1
  939.         move.l    #$3ED,D2
  940.         move.l    $24(A3),A6
  941.         jsr    -$1E(A6)
  942.         move.l    D0,D7
  943.         tst.l    D7
  944.         beq    LC0B8E
  945.         bset    #$0,$3(A2)
  946.         move.l    D7,D1
  947.         move.l    $8(A2),D2
  948.         moveq    #$40,D3
  949.         lsl.l    #$2,D3
  950.         move.l    $24(A3),A6
  951.         jsr    -$198(A6)
  952.         tst.l    D0
  953.         bne.s    LC0A48
  954.         move.l    $8(A2),A1
  955.         move.l    $2C(A3),A6
  956.         jsr    -$2B2(A6)
  957.         clr.l    $8(A2)
  958. LC0A48        move.b    #$1,-$15(A5)
  959.         clr.b    -$17(A5)
  960.         bra    LC0B1E
  961.  
  962. LC0A56        move.l    D7,D1
  963.         move.l    $24(SP),D2
  964.         moveq    #$40,D3
  965.         lsl.l    #$6,D3
  966.         move.l    $24(A3),A6
  967.         jsr    -$2A(A6)
  968.         move.l    D0,D6
  969. ;^ patch minsize (9.12.2000) ************************************************
  970.         moveq    #8,D0        ;^ min. size-1 for versionstrings
  971.         cmp.l    D0,D6        ;^
  972. ;^        tst.l    D6
  973.         ble    LC0B26
  974.         tst.b    -$15(A5)
  975.         beq.s    LC0A90
  976.         clr.b    -$15(A5)
  977.         moveq    #39,D0        ;^ min. size-1 for executables
  978. ;^        moveq    #$14,D0
  979. ;^ **************************************************************************
  980.         cmp.l    D0,D6
  981.         ble.b    LC0A90 
  982.         move.l    D2,A0
  983.         cmp.l    #$3F3,(A0)
  984.         bne.s    LC0A90
  985.         move.b    #$1,-$17(A5)
  986. LC0A90        moveq    #$0,D5
  987.         bra.s    LC0AF4
  988.  
  989. LC0A94        move.l    $24(SP),A0
  990.         add.l    D5,A0
  991.         move.l    A0,A2
  992.         moveq    #$24,D0
  993.         cmp.b    (A2),D0
  994.         bne.s    LC0AF2
  995.         move.l    D6,D0
  996.         sub.l    D5,D0
  997.         moveq    #$5,D1
  998.         cmp.l    D1,D0
  999.         bge.s    LC0ABE
  1000.         neg.l    D0
  1001.         move.l    D0,D2
  1002.         move.l    D7,D1
  1003.         moveq    #$0,D3
  1004.         move.l    $24(A3),A6
  1005.         jsr    -$42(A6)
  1006.         bra.s    LC0AF8
  1007.  
  1008. LC0ABE        moveq    #$5,D0
  1009.         move.l    A2,A0
  1010.         lea    Text8(PC),A1
  1011.         jsr    LC1138(PC)
  1012.         tst.l    D0
  1013.         bne.s    LC0AF2
  1014.         tst.l    D5
  1015.         ble.s    LC0AE6
  1016.         move.l    D5,D0
  1017.         sub.l    D6,D0
  1018.         move.l    D0,D2
  1019.         move.l    D7,D1
  1020.         moveq    #$0,D3
  1021.         move.l    $24(A3),A6
  1022.         jsr    -$42(A6)
  1023.         bra.s    LC0AF8
  1024.  
  1025. LC0AE6        move.b    #$1,-$16(A5)
  1026.         move.l    A2,-$14(A5)
  1027.         bra.s    LC0AF8
  1028.  
  1029. LC0AF2        addq.l    #$1,D5
  1030. LC0AF4        cmp.l    D6,D5
  1031.         blt.s    LC0A94
  1032. LC0AF8        tst.b    -$16(A5)
  1033.         beq.s    LC0B18
  1034.         move.l    -$14(A5),-(SP)
  1035.         moveq    #$0,D0
  1036.         move.l    D0,D1
  1037.         move.l    A3,A0
  1038.         move.l    -$1C(A5),A1
  1039.         bsr    LC054C
  1040.         addq.w    #$4,SP
  1041.         move.l    D0,-$1C(A5)
  1042.         bra.s    LC0B1E
  1043.  
  1044. LC0B18        tst.b    -$17(A5)
  1045.         bne.s    LC0B26
  1046. LC0B1E        tst.b    -$16(A5)
  1047.         beq    LC0A56
  1048. LC0B26        move.l    D7,D1
  1049.         move.l    $24(A3),A6
  1050.         jsr    -$24(A6)
  1051.         move.l    -$1C(A5),A2
  1052.         tst.b    -$16(A5)
  1053.         bne.s    LC0B8E
  1054.         tst.b    -$17(A5)
  1055.         beq.s    LC0B8E
  1056.         move.l    $8(A5),D1
  1057.         jsr    -$96(A6)
  1058.         move.l    D0,D7
  1059.         tst.l    D7
  1060.         beq.s    LC0B8E
  1061.         move.l    D7,D0
  1062.         bsr    LC0502
  1063.         tst.l    D0
  1064.         beq.s    LC0B6C
  1065.         move.l    D0,-(SP)
  1066.         moveq    #$0,D0
  1067.         move.l    D0,D1
  1068.         move.l    A3,A0
  1069.         move.l    A2,A1
  1070.         bsr    LC054C
  1071.         addq.w    #$4,SP
  1072.         move.l    D0,A2
  1073.         bra.s    LC0B84
  1074.  
  1075. LC0B6C        move.l    D7,D0
  1076.         bsr    LC04BC
  1077.         tst.l    D0
  1078.         beq.s    LC0B84
  1079.         move.l    D0,-(SP)
  1080.         move.l    A3,A0
  1081.         move.l    A2,A1
  1082.         bsr    LC097A
  1083.         addq.w    #$4,SP
  1084.         move.l    D0,A2
  1085. LC0B84        move.l    D7,D1
  1086.         move.l    $24(A3),A6
  1087.         jsr    -$9C(A6)
  1088. LC0B8E        move.l    $24(SP),A1
  1089.         move.l    $2C(A3),A6
  1090.         jsr    -$2B2(A6)
  1091.         move.l    A2,D0
  1092.         beq.s    LC0BB2
  1093.         btst    #$0,$3(A2)
  1094.         bne.s    LC0BB2
  1095.         move.l    $8(A2),A1
  1096.         jsr    -$2B2(A6)
  1097.         clr.l    $8(A2)
  1098. LC0BB2        move.l    A2,D0
  1099.         bra.s    LC0BC4
  1100.  
  1101. LC0BB6        move.l    -$1C(A5),A2
  1102.         move.l    A3,A0
  1103.         move.l    A2,A1
  1104.         bsr.b    LC0BCC
  1105.         moveq    #$0,D0
  1106. LC0BC4        movem.l    (SP)+,D2/D3/D5-D7/A2/A3/A6
  1107.         unlk    A5
  1108.         rts
  1109.  
  1110. *****************************************************************************
  1111.  
  1112. LC0BCC        movem.l    A2/A3/A6,-(SP)
  1113.         move.l    A0,A3
  1114.         move.l    A1,A2
  1115.         move.l    $8(A2),A1
  1116.         move.l    $2C(A3),A6
  1117.         jsr    -$2B2(A6)
  1118.         move.l    $C(A2),A1
  1119.         jsr    -$2B2(A6)
  1120.         move.l    $24(A2),A1
  1121.         jsr    -$2B2(A6)
  1122.         move.l    A2,A1
  1123.         jsr    -$2B2(A6)
  1124.         movem.l    (SP)+,A2/A3/A6
  1125.         rts
  1126.  
  1127. *****************************************************************************
  1128.  
  1129. LC0BFC        link    A5,#-$20
  1130.         movem.l    D2/D3/D7/A2/A3/A6,-(SP)
  1131.         movem.l    A0/A1,-$14(A5)
  1132.         move.l    -$14(A5),A3
  1133.         moveq    #$64,D0
  1134.         moveq    #$1,D1
  1135.         swap    D1
  1136.         move.l    $2C(A3),A6
  1137.         jsr    -$2AC(A6)
  1138.         move.l    D0,A2
  1139.         move.l    A2,D0
  1140.         beq    LC1072
  1141.         moveq    #-$1,D0
  1142.         move.l    D0,$10(A2)
  1143.         move.l    D0,$14(A2)
  1144.         move.l    D0,$18(A2)
  1145.         move.l    D0,$1C(A2)
  1146.         move.l    D0,$20(A2)
  1147.         tst.l    -$10(A5)
  1148.         bne    LC0CE6
  1149.         move.l    #$80110001,D0
  1150.         moveq    #$0,D1
  1151.         move.l    $8(A5),A0
  1152.         move.l    $28(A3),A6
  1153.         jsr    -$24(A6)
  1154.         move.l    $2C(A3),A0
  1155.         subq.l    #$1,D0
  1156.         bne.s    LC0C8A
  1157.         moveq    #$0,D0
  1158.         move.w    $14(A0),D0
  1159.         move.l    D0,$10(A2)
  1160.         moveq    #$0,D0
  1161.         move.w    $22(A0),D0
  1162.         move.l    D0,$14(A2)
  1163.         pea    Text0(PC)
  1164.         moveq    #$1,D0
  1165.         move.l    D0,D1
  1166.         move.l    A3,A0
  1167.         move.l    A2,A1
  1168.         bsr    LC054C
  1169.         addq.w    #$4,SP
  1170.         move.l    D0,A2
  1171.         bra    LC1072
  1172.  
  1173. LC0C8A        moveq    #$1,D0
  1174.         move.l    D0,(A2)
  1175.         move.l    A0,A6
  1176.         lea    VERName(PC),A1
  1177.         moveq    #$0,D0
  1178.         jsr    -$228(A6)
  1179.         move.l    D0,$18(SP)
  1180.         tst.l    D0
  1181.         beq    LC1072
  1182.         lea    Text5(PC),A0
  1183.         move.l    A0,$C(A2)
  1184.         moveq    #$0,D1
  1185.         move.l    D0,A0
  1186.         move.w    $14(A0),D1
  1187.         move.l    D1,$10(A2)
  1188.         moveq    #$0,D1
  1189.         move.w    $16(A0),D1
  1190.         move.l    D1,$14(A2)
  1191.         move.l    $18(A0),-(SP)
  1192.         moveq    #$1,D0
  1193.         move.l    D0,D1
  1194.         move.l    A3,A0
  1195.         move.l    A2,A1
  1196.         bsr    LC054C
  1197.         addq.w    #$4,SP
  1198.         move.l    D0,A2
  1199.         move.l    $18(SP),A1
  1200.         move.l    $2C(A3),A6
  1201.         jsr    -$19E(A6)
  1202.         bra    LC1072
  1203.  
  1204. LC0CE6        move.l    D0,D1
  1205.         move.l    #$80110002,D0
  1206.         move.l    $8(A5),A0
  1207.         move.l    $28(A3),A6
  1208.         jsr    -$24(A6)
  1209.         move.l    D0,D7
  1210.         btst    #$0,D7
  1211.         beq.s    LC0D26
  1212.         move.l    -$10(A5),A0
  1213.         move.l    A3,A6
  1214.         jsr    LC10A4(PC)
  1215.         tst.l    D0
  1216.         beq.s    LC0D26
  1217.         moveq    #$1,D1
  1218.         move.l    D1,$4(A2)
  1219.         move.l    D0,-(SP)
  1220.         move.l    A3,A0
  1221.         move.l    A2,A1
  1222.         bsr    LC097A
  1223.         addq.w    #$4,SP
  1224.         move.l    D0,A2
  1225.         moveq    #$0,D7
  1226. LC0D26        btst    #$1,D7
  1227.         beq    LC0DB0
  1228.         move.l    $2C(A3),A6
  1229.         jsr    -$84(A6)
  1230.         move.l    A3,A0
  1231.         move.l    -$10(A5),A1
  1232.         bsr    LC0482
  1233.         move.l    D0,A3
  1234.         move.l    A3,D0
  1235.         beq.s    LC0DA4
  1236.         move.l    $4(A3),D0
  1237.         moveq    #-$2,D1
  1238.         cmp.l    D1,D0
  1239.         beq.s    LC0D58
  1240.         cmp.l    #$FFFFFC19,D0
  1241.         bne.s    LC0D80
  1242. LC0D58        move.l    -$14(A5),A3
  1243.         lea    Text10(PC),A0
  1244.         move.l    A3,A6
  1245.         jsr    LC10A4(PC)
  1246.         tst.l    D0
  1247.         beq.s    LC0DA2
  1248.         moveq    #$1,D1
  1249.         move.l    D1,$4(A2)
  1250.         move.l    D0,-(SP)
  1251.         move.l    A3,A0
  1252.         move.l    A2,A1
  1253.         bsr    LC097A
  1254.         addq.w    #$4,SP
  1255.         move.l    D0,A2
  1256.         bra.s    LC0DA2
  1257.  
  1258. LC0D80        moveq    #$2,D0
  1259.         move.l    D0,$4(A2)
  1260.         move.l    $8(A3),D0
  1261.         bsr    LC0502
  1262.         move.l    D0,-(SP)
  1263.         moveq    #$0,D0
  1264.         move.l    D0,D1
  1265.         move.l    -$14(A5),A0
  1266.         move.l    A2,A1
  1267.         bsr    LC054C
  1268.         addq.w    #$4,SP
  1269.         move.l    D0,A2
  1270. LC0DA2        moveq    #$0,D7
  1271. LC0DA4        move.l    -$14(A5),A3
  1272.         move.l    $2C(A3),A6
  1273.         jsr    -$8A(A6)
  1274. LC0DB0        btst    #$2,D7
  1275.         beq    LC0E42
  1276.         move.l    -$10(A5),A0
  1277. LC0DBC        tst.b    (A0)+
  1278.         bne.s    LC0DBC
  1279.         subq.l    #$1,A0
  1280.         sub.l    -$10(A5),A0
  1281.         move.l    A0,D0
  1282.         beq.s    LC0E42
  1283.         move.l    A0,$20(SP)
  1284.         moveq    #$3A,D0
  1285.         move.l    -$10(A5),A1
  1286.         move.l    A0,D1
  1287.         cmp.b    -$1(A1,D1.L),D0
  1288.         bne.s    LC0E42
  1289.         clr.b    -$1(A1,D1.L)
  1290.         moveq    #$5,D1
  1291.         move.l    $24(A3),A6
  1292.         jsr    -$28E(A6)
  1293.         move.l    D0,D1
  1294.         move.l    -$10(A5),D2
  1295.         moveq    #$4,D3
  1296.         jsr    -$2AC(A6)
  1297.         move.l    D0,$1C(SP)
  1298.         moveq    #$5,D1
  1299.         jsr    -$294(A6)
  1300.         tst.l    $1C(SP)
  1301.         beq.s    LC0E34
  1302.         moveq    #$1,D0
  1303.         move.l    D0,(A2)
  1304.         move.l    D3,$4(A2)
  1305.         move.l    $1C(SP),A0
  1306.         tst.l    $1C(A0)
  1307.         beq.s    LC0E32
  1308.         move.l    $20(A0),D0
  1309.         bsr    LC04BC
  1310.         tst.l    D0
  1311.         beq.s    LC0E32
  1312.         move.l    D0,-(SP)
  1313.         move.l    A3,A0
  1314.         move.l    A2,A1
  1315.         bsr    LC097A
  1316.         addq.w    #$4,SP
  1317.         move.l    D0,A2
  1318. LC0E32        moveq    #$0,D7
  1319. LC0E34        move.l    -$10(A5),A0
  1320.         move.l    $20(SP),D0
  1321.         move.b    #$3A,-$1(A0,D0.L)
  1322. LC0E42        btst    #$3,D7
  1323.         beq.s    LC0EB4
  1324.         move.l    $2C(A3),A6
  1325.         jsr    -$84(A6)
  1326.         lea    $17A(A6),A0
  1327.         move.l    A0,$1C(SP)
  1328.         move.l    -$10(A5),D1
  1329.         move.l    $24(A3),A6
  1330.         jsr    -$366(A6)
  1331.         move.l    D0,A1
  1332.         move.l    $1C(SP),A0
  1333.         move.l    A3,A6
  1334.         jsr    LC10DE(PC)
  1335.         tst.l    D0
  1336.         beq.s    LC0EAC
  1337.         moveq    #$8,D1
  1338.         move.l    D1,$4(A2)
  1339.         move.l    D0,A0
  1340.         move.l    $A(A0),$C(A2)
  1341.         moveq    #$0,D1
  1342.         move.w    $14(A0),D1
  1343.         move.l    D1,$10(A2)
  1344.         moveq    #$0,D1
  1345.         move.w    $16(A0),D1
  1346.         move.l    D1,$14(A2)
  1347.         move.l    $18(A0),-(SP)
  1348.         moveq    #$1,D0
  1349.         move.l    D0,D1
  1350.         move.l    A3,A0
  1351.         move.l    A2,A1
  1352.         bsr    LC054C
  1353.         addq.w    #$4,SP
  1354.         move.l    D0,A2
  1355.         moveq    #$0,D7
  1356. LC0EAC        move.l    $2C(A3),A6
  1357.         jsr    -$8A(A6)
  1358. LC0EB4        btst    #$4,D7
  1359.         beq.s    LC0F26
  1360.         move.l    $2C(A3),A6
  1361.         jsr    -$84(A6)
  1362.         lea    $15E(A6),A0
  1363.         move.l    A0,$1C(SP)
  1364.         move.l    -$10(A5),D1
  1365.         move.l    $24(A3),A6
  1366.         jsr    -$366(A6)
  1367.         move.l    D0,A1
  1368.         move.l    $1C(SP),A0
  1369.         move.l    A3,A6
  1370.         jsr    LC10DE(PC)
  1371.         tst.l    D0
  1372.         beq.s    LC0F1E
  1373.         moveq    #$10,D1
  1374.         move.l    D1,$4(A2)
  1375.         move.l    D0,A0
  1376.         move.l    $A(A0),$C(A2)
  1377.         moveq    #$0,D1
  1378.         move.w    $14(A0),D1
  1379.         move.l    D1,$10(A2)
  1380.         moveq    #$0,D1
  1381.         move.w    $16(A0),D1
  1382.         move.l    D1,$14(A2)
  1383.         move.l    $18(A0),-(SP)
  1384.         moveq    #$1,D0
  1385.         move.l    D0,D1
  1386.         move.l    A3,A0
  1387.         move.l    A2,A1
  1388.         bsr    LC054C
  1389.         addq.w    #$4,SP
  1390.         move.l    D0,A2
  1391.         moveq    #$0,D7
  1392. LC0F1E        move.l    $2C(A3),A6
  1393.         jsr    -$8A(A6)
  1394. LC0F26        btst    #$5,D7
  1395.         beq.s    LC0F50
  1396.         moveq    #$20,D0
  1397.         move.l    D0,$4(A2)
  1398.         move.l    -$10(A5),-(SP)
  1399.         move.l    A3,A0
  1400.         move.l    A2,A1
  1401.         bsr    LC09B4
  1402.         addq.w    #$4,SP
  1403.         move.l    D0,A2
  1404.         move.l    A2,D0
  1405.         beq.s    LC0F4E
  1406.         btst    #$0,$3(A2)
  1407.         beq.s    LC0F50
  1408. LC0F4E        moveq    #$0,D7
  1409. LC0F50        btst    #$6,D7
  1410.         beq    LC0FE0
  1411.         move.l    -$10(A5),D1
  1412.         move.l    $24(A3),A6
  1413.         jsr    -$366(A6)
  1414.         move.l    D0,A0
  1415. LC0F66        tst.b    (A0)+
  1416.         bne.s    LC0F66
  1417.         subq.l    #$1,A0
  1418.         sub.l    D0,A0
  1419.         move.l    A0,D0
  1420.         addq.l    #$6,D0
  1421.         moveq    #$0,D1
  1422.         move.l    $2C(A3),A6
  1423.         jsr    -$2AC(A6)
  1424.         move.l    D0,$18(SP)
  1425.         tst.l    D0
  1426.         beq.s    LC0FC8
  1427.         lea    Text11(PC),A0
  1428.         move.l    D0,A1
  1429. LC0F8A        move.b    (A0)+,(A1)+
  1430.         bne.s    LC0F8A
  1431.         move.l    -$10(A5),D1
  1432.         move.l    $24(A3),A6
  1433.         jsr    -$366(A6)
  1434.         move.l    D0,A1
  1435.         move.l    $18(SP),A0
  1436.         jsr    LC1184(PC)
  1437.         moveq    #$40,D0
  1438.         move.l    D0,$4(A2)
  1439.         move.l    $18(SP),-(SP)
  1440.         move.l    A3,A0
  1441.         move.l    A2,A1
  1442.         bsr    LC09B4
  1443.         addq.w    #$4,SP
  1444.         move.l    D0,A2
  1445.         move.l    $18(SP),A1
  1446.         move.l    $2C(A3),A6
  1447.         jsr    -$2B2(A6)
  1448.         bra.s    LC0FD2
  1449.  
  1450. LC0FC8        move.l    A3,A0
  1451.         move.l    A2,A1
  1452.         bsr    LC0BCC
  1453.         sub.l    A2,A2
  1454. LC0FD2        move.l    A2,D0
  1455.         beq.s    LC0FDE
  1456.         btst    #$0,$3(A2)
  1457.         beq.s    LC0FE0
  1458. LC0FDE        moveq    #$0,D7
  1459. LC0FE0        btst    #$7,D7
  1460.         beq.s    LC1062
  1461.         move.l    -$10(A5),D1
  1462.         move.l    $24(A3),A6
  1463.         jsr    -$366(A6)
  1464.         move.l    D0,A0
  1465. LC0FF4        tst.b    (A0)+
  1466.         bne.s    LC0FF4
  1467.         subq.l    #$1,A0
  1468.         sub.l    D0,A0
  1469.         move.l    A0,D0
  1470.         addq.l    #$6,D0
  1471.         moveq    #$0,D1
  1472.         move.l    $2C(A3),A6
  1473.         jsr    -$2AC(A6)
  1474.         move.l    D0,$18(SP)
  1475.         tst.l    D0
  1476.         beq.s    LC1058
  1477.         lea    Text12(PC),A0
  1478.         move.l    D0,A1
  1479. LC1018        move.b    (A0)+,(A1)+
  1480.         bne.s    LC1018
  1481.         move.l    -$10(A5),D1
  1482.         move.l    $24(A3),A6
  1483.         jsr    -$366(A6)
  1484.         move.l    D0,A1
  1485.         move.l    $18(SP),A0
  1486.         jsr    LC1184(PC)
  1487.         move.l    #$80,$4(A2)
  1488.         move.l    $18(SP),-(SP)
  1489.         move.l    A3,A0
  1490.         move.l    A2,A1
  1491.         bsr    LC09B4
  1492.         addq.w    #$4,SP
  1493.         move.l    D0,A2
  1494.         move.l    $18(SP),A1
  1495.         move.l    $2C(A3),A6
  1496.         jsr    -$2B2(A6)
  1497.         bra.s    LC1062
  1498.  
  1499. LC1058        move.l    A3,A0
  1500.         move.l    A2,A1
  1501.         bsr    LC0BCC
  1502.         sub.l    A2,A2
  1503. LC1062        move.l    A2,D0
  1504.         beq.s    LC1072
  1505.         btst    #$0,$3(A2)
  1506.         bne.s    LC1072
  1507.         clr.l    $4(A2)
  1508. LC1072        move.l    A2,D0
  1509.         movem.l    (SP)+,D2/D3/D7/A2/A3/A6
  1510.         unlk    A5
  1511.         rts
  1512.  
  1513. *****************************************************************************
  1514.  
  1515. LC107C        link    A5,#$0
  1516.         movem.l    A2/A3,-(SP)
  1517.         move.l    $8(A5),A3
  1518.         move.l    $C(A5),A2
  1519.         pea    $10(A5)
  1520.         move.l    A3,A0
  1521.         move.l    A2,A1
  1522.         bsr    LC0BFC
  1523.         movem.l    -$8(A5),A2/A3
  1524.         unlk    A5
  1525.         rts
  1526.  
  1527. *****************************************************************************
  1528.  
  1529.         cnop    0,4
  1530.  
  1531. *****************************************************************************
  1532.  
  1533. LC10A4        movem.l    A2-A4/A6,-(SP)
  1534.         move.l    $2C(A6),A1
  1535.         move.l    $12C(A1),A2
  1536.         move.l    A0,A3
  1537.         move.l    $28(A6),A6
  1538. LC10B6        move.l    (A2)+,D0
  1539.         beq.s    LC10D8
  1540.         bgt.s    LC10C4
  1541.         bclr    #$1F,D0
  1542.         move.l    D0,A2
  1543.         bra.s    LC10B6
  1544.  
  1545. LC10C4        move.l    D0,A4
  1546.         move.l    D0,A1
  1547.         move.l    A3,A0
  1548.         move.l    $E(A1),A1
  1549.         jsr    -$A2(A6)
  1550.         tst.l    D0
  1551.         bne.s    LC10B6
  1552.         move.l    A4,D0
  1553. LC10D8        movem.l    (SP)+,A2-A4/A6
  1554.         rts
  1555.  
  1556. *****************************************************************************
  1557.  
  1558. LC10DE        movem.l    D2/A2/A3/A6,-(SP)
  1559.         move.l    $28(A6),A6
  1560.         move.l    A1,A3
  1561.         move.l    (A0),D2
  1562. LC10EA        move.l    D2,A2
  1563.         move.l    (A2),D2
  1564.         beq.s    LC1106
  1565.         move.l    A3,A0
  1566.         move.l    $A(A2),A1
  1567.         jsr    -$A2(A6)
  1568.         tst.l    D0
  1569.         bne.s    LC10EA
  1570.         move.l    A2,D0
  1571.         movem.l    (SP)+,D2/A2/A3/A6
  1572.         rts
  1573.  
  1574. LC1106        moveq    #$0,D0
  1575.         movem.l    (SP)+,D2/A2/A3/A6
  1576.         rts
  1577.  
  1578. *****************************************************************************
  1579.  
  1580.         cnop    0,4
  1581.  
  1582. *****************************************************************************
  1583.  
  1584. RawDoFmt    movem.l    A2-A4/A6,-(SP)
  1585.         move.l    $14(SP),A3
  1586.         move.l    $18(SP),A0
  1587.         lea    $1C(SP),A1
  1588.         lea    LC1134(PC),A2
  1589.         move.l    $4.w,A6
  1590.         jsr    -$20A(A6)
  1591.         movem.l    (SP)+,A2-A4/A6
  1592.         rts
  1593.  
  1594. LC1134        move.b    D0,(A3)+
  1595.         rts
  1596.  
  1597. *****************************************************************************
  1598.  
  1599. LC1138        movem.l    D6/D7/A2/A3,-(SP)
  1600.         move.l    A0,A3
  1601.         move.l    A1,A2
  1602.         move.l    D0,D7
  1603. LC1142        tst.l    D7
  1604.         beq.s    LC1166
  1605.         tst.b    (A3)
  1606.         beq.s    LC1166
  1607.         tst.b    (A2)
  1608.         beq.s    LC1166
  1609.         moveq    #$0,D0
  1610.         move.b    (A3)+,D0
  1611.         moveq    #$0,D1
  1612.         move.b    (A2)+,D1
  1613.         sub.l    D1,D0
  1614.         move.l    D0,D6
  1615.         tst.l    D6
  1616.         beq.s    LC1162
  1617.         move.l    D6,D0
  1618.         bra.s    LC117C
  1619.  
  1620. LC1162        subq.l    #$1,D7
  1621.         bra.s    LC1142
  1622.  
  1623. LC1166        tst.l    D7
  1624.         beq.s    LC117A
  1625.         tst.b    (A3)
  1626.         beq.s    LC1172
  1627.         moveq    #$1,D0
  1628.         bra.s    LC117C
  1629.  
  1630. LC1172        tst.b    (A2)
  1631.         beq.s    LC117A
  1632.         moveq    #-$1,D0
  1633.         bra.s    LC117C
  1634.  
  1635. LC117A        moveq    #$0,D0
  1636. LC117C        movem.l    (SP)+,D6/D7/A2/A3
  1637.         rts
  1638.  
  1639. *****************************************************************************
  1640.  
  1641. LC1184        move.l    A0,D0
  1642. LC1186        tst.b    (A0)+
  1643.         bne.s    LC1186
  1644.         subq.l    #$1,A0
  1645. LC118C        move.b    (A1)+,(A0)+
  1646.         bne.s    LC118C
  1647.         rts
  1648.  
  1649. *****************************************************************************
  1650.  
  1651.         cnop    0,4
  1652.  
  1653. *****************************************************************************
  1654.  
  1655. LC1194        movem.l    D2/D3,-(SP)
  1656.         move.l    D0,D2
  1657.         move.l    D1,D3
  1658.         swap    D2
  1659.         swap    D3
  1660.         mulu    D1,D2
  1661.         mulu    D0,D3
  1662.         mulu    D1,D0
  1663.         add.w    D3,D2
  1664.         swap    D2
  1665.         clr.w    D2
  1666.         add.l    D2,D0
  1667.         movem.l    (SP)+,D2/D3
  1668.         rts
  1669.  
  1670. *****************************************************************************
  1671.  
  1672. LC11B4        tst.l    D0
  1673.         bpl.b    LC11D6
  1674.         neg.l    D0
  1675.         tst.l    D1
  1676.         bpl.b    LC11CC
  1677.         neg.l    D1
  1678.         bsr.b    LC11E6
  1679.         neg.l    D1
  1680.         rts
  1681.  
  1682. LC11CC        bsr.b    LC11E6
  1683.         neg.l    D0
  1684.         neg.l    D1
  1685.         rts
  1686.  
  1687. LC11D6        tst.l    D1
  1688.         bpl.b    LC11E6
  1689.         neg.l    D1
  1690.         bsr.b    LC11E6
  1691.         neg.l    D0
  1692.         rts
  1693.  
  1694. LC11E6        move.l    D2,-(SP)
  1695.         swap    D1
  1696.         move.w    D1,D2
  1697.         bne.b    LC1210
  1698.         swap    D0
  1699.         swap    D1
  1700.         swap    D2
  1701.         move.w    D0,D2
  1702.         beq.b    LC1200
  1703.         divu    D1,D2
  1704.         move.w    D2,D0
  1705. LC1200        swap    D0
  1706.         move.w    D0,D2
  1707.         divu    D1,D2
  1708.         move.w    D2,D0
  1709.         swap    D2
  1710.         move.w    D2,D1
  1711.         move.l    (SP)+,D2
  1712.         rts
  1713.  
  1714. LC1210        move.l    D3,-(SP)
  1715.         moveq    #$10,D3
  1716.         cmp.w    #$80,D1
  1717.         bcc.b    LC1220
  1718.         rol.l    #$8,D1
  1719.         subq.w    #$8,D3
  1720. LC1220        cmp.w    #$800,D1
  1721.         bcc.b    LC122C
  1722.         rol.l    #$4,D1
  1723.         subq.w    #$4,D3
  1724. LC122C        cmp.w    #$2000,D1
  1725.         bcc.b    LC1238
  1726.         rol.l    #$2,D1
  1727.         subq.w    #$2,D3
  1728. LC1238        tst.w    D1
  1729.         bmi.b    LC1242
  1730.         rol.l    #$1,D1
  1731.         subq.w    #$1,D3
  1732. LC1242        move.w    D0,D2
  1733.         lsr.l    D3,D0
  1734.         swap    D2
  1735.         clr.w    D2
  1736.         lsr.l    D3,D2
  1737.         swap    D3
  1738.         divu    D1,D0
  1739.         move.w    D0,D3
  1740.         move.w    D2,D0
  1741.         move.w    D3,D2
  1742.         swap    D1
  1743.         mulu    D1,D2
  1744.         sub.l    D2,D0
  1745.         bcc.b    LC1266
  1746.         subq.w    #$1,D3
  1747.         add.l    D1,D0
  1748. LC1264        bcc.s    LC1264
  1749. LC1266        moveq    #$0,D1
  1750.         move.w    D3,D1
  1751.         swap    D3
  1752.         rol.l    D3,D0
  1753.         swap    D0
  1754.         exg    D0,D1
  1755.         move.l    (SP)+,D3
  1756.         move.l    (SP)+,D2
  1757.         rts
  1758.  
  1759.  end ************************************************************************
  1760.